package com.ungs.bo.impl;

import java.util.ArrayList;
import java.util.List;

import com.ungs.bo.ClienteBO;
import com.ungs.dao.ClienteDAO;
import com.ungs.dao.impl.ClienteDAOImpl;
import com.ungs.entities.Cliente;
import com.ungs.utils.Constantes;

public class ClienteBOImpl extends EntidadBOImpl<Cliente> implements ClienteBO {
	private ClienteDAO clienteDAO = new ClienteDAOImpl();

	@Override
	public List<Cliente> getClienteByFilter(String param, boolean todos) {
		return clienteDAO.getClienteByFilter(param, todos);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Cliente> getAllCliente() {
		List<Cliente> clienteList = (List<Cliente>) getAll(Cliente.class);
		logger.info("Obteniendo lista de cliente con alta logica");
		List<Cliente> clienteReturn = new ArrayList<Cliente>();

		for (Cliente cliente : clienteList) {
			if (cliente.getEstadoLogico().equals(Constantes.ALTA)) {
				clienteReturn.add(cliente);
			}
		}

		return clienteReturn;
	}

	@Override
	public void eliminarCliente(Cliente cliente) {
		logger.info("Baja logica cliente: " + cliente.getId());
		cliente.setEstadoLogico(Constantes.BAJA);
		actualizar(cliente);
	}

}
